package cn.mygweb.admin.modules.sys.service;

import java.util.List;

import cn.mygweb.admin.modules.sys.pojo.Menu;

/** 
* <p>Title: SysMenuService.java</p>
* <p>Description: 系统菜单</p>  
* @author gxb 
* @date 2019年6月2日 
* <p>Copyright: Copyright (c) 2019</p>
* <p>Company: www.mygweb.cn</p> 
*/
public interface MenuService {

	/**
	 * <p>Title: queryMenuList</p>
	 * <p>Description: 查询所有的菜单</p>
	 * @return
	 */
	List<Menu> queryMenuList(Menu sysMenu);
	
	/**
	 * <p>Title: save</p>
	 * <p>Description: 插入菜单信息</p>
	 * @param menu
	 */
	void save(Menu menu);
	
	/**
	 * <p>Title: deleteById</p>
	 * <p>Description: 通过id删除菜单信息</p>
	 * @param id
	 */
	void deleteById(String id);
	
	/**
	 * <p>Title: update</p>
	 * <p>Description: 修改菜单信息</p>
	 * @param menu
	 */
	void update(Menu menu);

	/**
	 * <p>Title: queryMenuTree</p>
	 * <p>Description: 查询菜单中全部或者指定角色的id,pid,name信息</p>
	 * @param menu
	 * @param roleId 
	 * @return
	 */
	List<Menu> getMenuTree(Menu menu);
	
	/**
	 * <p>Title: getRoleMenus</p>
	 * <p>Description: 通过角色id查询对应的菜单信息</p>
	 * @param roleId
	 * @return
	 */
	List<Menu> getRoleMenus(String roleId);

	/**
	 * <p>Title: getSidebarMenuTree</p>
	 * <p>Description: 获取侧边栏的菜单结果树</p>
	 * @param userId 
	 * @param menuList
	 * @return
	 */
	List<Menu> getSidebarMenuTree(String userId, Menu menu);
	
	/**
	 * <p>Title: getUserMenus</p>
	 * <p>Description: 通过用户id查询对应的菜单信息</p>
	 * @param userId
	 * @return
	 */
	List<Menu> getUserMenus(String userId);
	
}
